package com.example.farmrental.repository;

import com.example.farmrental.entity.Machinery;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 农机数据访问层
 */
@Repository
public interface MachineryRepository extends JpaRepository<Machinery, Long> {
    
    /**
     * 根据分类查询农机
     */
    List<Machinery> findByCategory(String category);
    
    /**
     * 根据状态查询农机
     */
    List<Machinery> findByStatus(String status);
    
    /**
     * 根据名称模糊查询农机
     */
    @Query("SELECT m FROM Machinery m WHERE m.name LIKE %:name%")
    List<Machinery> findByNameContaining(@Param("name") String name);

    /**
     * 按名称精确查询（用于订单明细回填）
     */
    Machinery findFirstByName(String name);
    
    /**
     * 根据分类和状态查询农机
     */
    List<Machinery> findByCategoryAndStatus(String category, String status);
    
    /**
     * 获取所有不重复的农机分类
     */
    @Query("SELECT DISTINCT m.category FROM Machinery m ORDER BY m.category")
    List<String> findDistinctCategories();
}
